package cn.zhaoyuening.zhaocloud.provider.register;

import java.util.TreeSet;

import cn.zhaoyuening.zhaocloud.common.bean.CloudServiceBean;

/**
 * 服务注册器
 * 负责向注册中心注册服务
 * @author 赵岳宁
 *
 */
public interface CloudServiceRegister {
	/**
	 * 注册该服务到注册中心
	 * @param serviceClass 服务类的class文件
	 * @param version 服务版本
	 */
	void registryService(Class<?> serviceClass,int version);
	/**
	 * 注册该服务到注册中心
	 * @param serviceName 服务类的类全名
	 * @param version 服务版本
	 */
	void registryService(String serviceName,int version);
	/**
	 * 注册该服务到注册中心
	 * @param serviceSet 服务注册信息封装
	 */
	void registryService(TreeSet<CloudServiceBean> serviceSet);
	/**
	 * 向注册中心移除服务的注册
	 * @param serviceClass 服务类class文件
	 * @param version 服务版本
	 */
	void removeService(Class<?> serviceClass,int version);
	/**
	 * 向注册中心移除服务的注册
	 * @param serviceName 服务类的名称
	 * @param version 服务版本
	 */
	void removeService(String serviceName,int version);
	
	/**
	 * 关闭本应用提供的所有服务
	 */
	void closeAllService();
	
	
}
